#coding:utf-8

import re

#字符集中的元素是或关系

string = "aac, abc, acc, adc, aec, afc, agc"

#1.字符集和：类似[xyz],匹配所包含的任意一个字符,例如，"[abc]"可以匹配"plain"中的"a"。
#示例：找出str1中每个单词的中间字母是'c'或者'f'的单词
result1 = re.findall("a[cf]c",string)
print(result1)    #打印：['acc', 'afc']


#2.负字符集合：类似[^xyz],匹配未包含的任意字符,例如，"[^abc]"可以匹配"plain"中的"plin"。
#示例:找出str1中每个单词的中间字母不是'c'或者'f'的单词
result2 = re.findall("a[^cf]c",string)
print(result2)    #打印：['aac', 'abc', 'adc', 'aec', 'agc']


#3.字符范围:匹配指定范围内的任意字符。例如，“[a-z]”可以匹配“a”到“z”范围内的任意小写字母字符。
#注意:只有连字符在字符组内部时,并且出现在两个字符之间时,才能表示字符的范围; 如果出字符组的开头,则只能表示连字符本身.
#示例：找出str1中每个单词的中间字母是'c'和'f'范围内字符的单词
result3 = re.findall("a[c-f]c",string)
print(result3)    #打印：['acc', 'adc', 'aec', 'afc']
